#ifndef MOVABLE_H
#define MOVABLE_H

#include <ncurses.h>

class Movable
{
public:
  virtual int getFore()=0;
  virtual char getSymbol()=0;
  virtual bool isPlayer()=0;
  virtual bool isCreature()=0;
  virtual bool isMonster()=0;
};

class MLNode
{
public:
  Movable* data;
  MLNode* next;
  MLNode* last;
};

class MovableList
{
public:
  MovableList();
  MLNode* head;
  MLNode* back;
  void insertFront(Movable*);
  void insertBack(Movable*);
  Movable* popFront();
  Movable* popBack();
  bool empty();
//  void swap(MLNode*, MLNode*);
//  void sort();
private:
  int size;
};

#endif
